#ifndef UNREALMAPDRAW_H
#define UNREALMAPDRAW_H
#include "routemapdraw.h"
#include "unrealmap.h"
#include "unrealbot.h"
#include "unrealflag.h"
class UnrealHandler;
using namespace drawables::vectorMap;
struct UnrealNativeBotDraw: public MapDrawable{
	UnrealNativeBotDraw(UnrealNativeBot* nb):MapDrawable(nb){}
	virtual void draw(Cairo::RefPtr<Cairo::Context> cr);
};
struct UnrealFlagDraw: public MapDrawable{
	UnrealFlagDraw(UnrealFlag* nf):MapDrawable(nf){}
	virtual void draw(Cairo::RefPtr<Cairo::Context> cr);
};

class UnrealMapDraw : public RouteMapDraw
{
    public:
        UnrealHandler* handler;
        /** Default constructor */
        UnrealMapDraw(UnrealMap* map);
        /** Default destructor */
        virtual ~UnrealMapDraw();
        virtual void drawPath(Node* node, Path* path, Cairo::RefPtr<Cairo::Context> context);
        virtual void drawNode(Node* node, Cairo::RefPtr<Cairo::Context> context);
//        virtual void drawBot(UnrealNativeBot* b, Place* place, Cairo::RefPtr<Cairo::Context> cr);
        virtual void afterDraw(Cairo::RefPtr<Cairo::Context> cr);
        void addBotToDraw(UnrealNativeBot* bot);
    protected:
    vector<UnrealNativeBotDraw*> drawBots;
    private:
};
#endif // UNREALMAPDRAW_H
